<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArMapId Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.4</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArMapId.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classArMapId-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArMapId Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Enapsulates the data used to uniquely identify an <a class="el" href="classAria.html" title="Contains global initialization, deinitialization and other global functions. ">Aria</a> map.  
 <a href="classArMapId.html#details">More...</a></p>

<p><code>#include &lt;ArMapUtils.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad3cc409ba542fe58763c49aa24945b0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3cc409ba542fe58763c49aa24945b0b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#ad3cc409ba542fe58763c49aa24945b0b">ArMapId</a> ()</td></tr>
<tr class="memdesc:ad3cc409ba542fe58763c49aa24945b0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default contructor creates a null map ID. <br /></td></tr>
<tr class="separator:ad3cc409ba542fe58763c49aa24945b0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5568f0f32615040f75fd7092718dd4fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a5568f0f32615040f75fd7092718dd4fa">ArMapId</a> (const char *sourceName, const char *fileName, const unsigned char *checksum, size_t checksumLength, long int size, const time_t timestamp)</td></tr>
<tr class="memdesc:a5568f0f32615040f75fd7092718dd4fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a map ID with the given attributes.  <a href="#a5568f0f32615040f75fd7092718dd4fa">More...</a><br /></td></tr>
<tr class="separator:a5568f0f32615040f75fd7092718dd4fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad40630e2aa3e0b6aa6b7bad7755e37de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad40630e2aa3e0b6aa6b7bad7755e37de"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#ad40630e2aa3e0b6aa6b7bad7755e37de">ArMapId</a> (const <a class="el" href="classArMapId.html">ArMapId</a> &amp;other)</td></tr>
<tr class="memdesc:ad40630e2aa3e0b6aa6b7bad7755e37de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ad40630e2aa3e0b6aa6b7bad7755e37de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb8c8bafb3403d11787e4c0f59942cef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb8c8bafb3403d11787e4c0f59942cef"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#adb8c8bafb3403d11787e4c0f59942cef">clear</a> ()</td></tr>
<tr class="memdesc:adb8c8bafb3403d11787e4c0f59942cef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears this map ID, i.e. sets it to null. <br /></td></tr>
<tr class="separator:adb8c8bafb3403d11787e4c0f59942cef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a786de6c7f07b642cee64cdc37aff93e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a786de6c7f07b642cee64cdc37aff93e9"></a>
const unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a786de6c7f07b642cee64cdc37aff93e9">getChecksum</a> () const </td></tr>
<tr class="memdesc:a786de6c7f07b642cee64cdc37aff93e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the buffer that contains the checksum. <br /></td></tr>
<tr class="separator:a786de6c7f07b642cee64cdc37aff93e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa921174571456a04c5e59b35d52c997f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa921174571456a04c5e59b35d52c997f"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#aa921174571456a04c5e59b35d52c997f">getChecksumLength</a> () const </td></tr>
<tr class="memdesc:aa921174571456a04c5e59b35d52c997f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the checksum. <br /></td></tr>
<tr class="separator:aa921174571456a04c5e59b35d52c997f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a113f34f23bb8291f0a110724fdeef9cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a113f34f23bb8291f0a110724fdeef9cd"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a113f34f23bb8291f0a110724fdeef9cd">getDisplayChecksum</a> () const </td></tr>
<tr class="memdesc:a113f34f23bb8291f0a110724fdeef9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the checksum in a human readable string format. <br /></td></tr>
<tr class="separator:a113f34f23bb8291f0a110724fdeef9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a410aef2069cbe512f2482349f64240a8"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a410aef2069cbe512f2482349f64240a8">getFileName</a> () const </td></tr>
<tr class="memdesc:a410aef2069cbe512f2482349f64240a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the string name of the file.  <a href="#a410aef2069cbe512f2482349f64240a8">More...</a><br /></td></tr>
<tr class="separator:a410aef2069cbe512f2482349f64240a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a495268b384e23abe809141c2ec35a6c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a495268b384e23abe809141c2ec35a6c2"></a>
long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a495268b384e23abe809141c2ec35a6c2">getSize</a> () const </td></tr>
<tr class="memdesc:a495268b384e23abe809141c2ec35a6c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of bytes in the map file. <br /></td></tr>
<tr class="separator:a495268b384e23abe809141c2ec35a6c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5a8d121c330e8b86a04cbbd2baaae38"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5a8d121c330e8b86a04cbbd2baaae38"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#ad5a8d121c330e8b86a04cbbd2baaae38">getSourceName</a> () const </td></tr>
<tr class="memdesc:ad5a8d121c330e8b86a04cbbd2baaae38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the string name of the originating robot or server. <br /></td></tr>
<tr class="separator:ad5a8d121c330e8b86a04cbbd2baaae38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63842901aff1690a2d97135ff7f2f3a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63842901aff1690a2d97135ff7f2f3a6"></a>
time_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a63842901aff1690a2d97135ff7f2f3a6">getTimestamp</a> () const </td></tr>
<tr class="memdesc:a63842901aff1690a2d97135ff7f2f3a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the last modified time of the file. <br /></td></tr>
<tr class="separator:a63842901aff1690a2d97135ff7f2f3a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae26d105529b0ac5990d85e8c11bb19f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae26d105529b0ac5990d85e8c11bb19f4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#ae26d105529b0ac5990d85e8c11bb19f4">isNull</a> () const </td></tr>
<tr class="memdesc:ae26d105529b0ac5990d85e8c11bb19f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether this map ID is null. <br /></td></tr>
<tr class="separator:ae26d105529b0ac5990d85e8c11bb19f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab88f7fb945dc1b8851d6ab86b7f53a33"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab88f7fb945dc1b8851d6ab86b7f53a33"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#ab88f7fb945dc1b8851d6ab86b7f53a33">isSameFile</a> (const <a class="el" href="classArMapId.html">ArMapId</a> &amp;other) const </td></tr>
<tr class="memdesc:ab88f7fb945dc1b8851d6ab86b7f53a33"><td class="mdescLeft">&#160;</td><td class="mdescRight">TODO Think that this is the same as operator==. <br /></td></tr>
<tr class="separator:ab88f7fb945dc1b8851d6ab86b7f53a33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78f42249db55178e613460114f470bc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78f42249db55178e613460114f470bc0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a78f42249db55178e613460114f470bc0">isValidTimestamp</a> () const </td></tr>
<tr class="memdesc:a78f42249db55178e613460114f470bc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the timestamp is valid; false if it's a special 'not-set' indicator. <br /></td></tr>
<tr class="separator:a78f42249db55178e613460114f470bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdf72128f3e96525fe1972ab1c6e38fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abdf72128f3e96525fe1972ab1c6e38fd"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#abdf72128f3e96525fe1972ab1c6e38fd">isVersionOfSameFile</a> (const <a class="el" href="classArMapId.html">ArMapId</a> &amp;other) const </td></tr>
<tr class="memdesc:abdf72128f3e96525fe1972ab1c6e38fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the source and file names are identical. <br /></td></tr>
<tr class="separator:abdf72128f3e96525fe1972ab1c6e38fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8581efeef777c46c541aa25de94d2cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8581efeef777c46c541aa25de94d2cb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#af8581efeef777c46c541aa25de94d2cb">log</a> (const char *prefix) const </td></tr>
<tr class="memdesc:af8581efeef777c46c541aa25de94d2cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the map ID to the output log file, with the specified prefix /header. <br /></td></tr>
<tr class="separator:af8581efeef777c46c541aa25de94d2cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7ec69f2bb62f34c45b432f6f7bfde7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7ec69f2bb62f34c45b432f6f7bfde7b"></a>
<a class="el" href="classArMapId.html">ArMapId</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#ae7ec69f2bb62f34c45b432f6f7bfde7b">operator=</a> (const <a class="el" href="classArMapId.html">ArMapId</a> &amp;other)</td></tr>
<tr class="memdesc:ae7ec69f2bb62f34c45b432f6f7bfde7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <br /></td></tr>
<tr class="separator:ae7ec69f2bb62f34c45b432f6f7bfde7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d9239049134c75926fa255b6e9f52b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d9239049134c75926fa255b6e9f52b5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a6d9239049134c75926fa255b6e9f52b5">setChecksum</a> (const unsigned char *checksum, size_t checksumLen)</td></tr>
<tr class="memdesc:a6d9239049134c75926fa255b6e9f52b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the checksum of the map file. <br /></td></tr>
<tr class="separator:a6d9239049134c75926fa255b6e9f52b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a344b1fdb05b649b668058d552a3cde7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a344b1fdb05b649b668058d552a3cde7a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a344b1fdb05b649b668058d552a3cde7a">setFileName</a> (const char *fileName)</td></tr>
<tr class="memdesc:a344b1fdb05b649b668058d552a3cde7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the map file name. <br /></td></tr>
<tr class="separator:a344b1fdb05b649b668058d552a3cde7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ed118838193dced4dd91e8b3da25770"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ed118838193dced4dd91e8b3da25770"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a6ed118838193dced4dd91e8b3da25770">setSize</a> (long int size)</td></tr>
<tr class="memdesc:a6ed118838193dced4dd91e8b3da25770"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the number of bytes in the map file. <br /></td></tr>
<tr class="separator:a6ed118838193dced4dd91e8b3da25770"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a494ab7c84dfd7b17dbbe4a8398452201"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a494ab7c84dfd7b17dbbe4a8398452201"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a494ab7c84dfd7b17dbbe4a8398452201">setSourceName</a> (const char *sourceName)</td></tr>
<tr class="memdesc:a494ab7c84dfd7b17dbbe4a8398452201"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the name of the source robot or server that originated the map file. <br /></td></tr>
<tr class="separator:a494ab7c84dfd7b17dbbe4a8398452201"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e59a63ccb1a30fb87972b4d06c98422"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e59a63ccb1a30fb87972b4d06c98422"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a4e59a63ccb1a30fb87972b4d06c98422">setTimestamp</a> (const time_t &amp;timestamp)</td></tr>
<tr class="memdesc:a4e59a63ccb1a30fb87972b4d06c98422"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the last modified time of the map file. <br /></td></tr>
<tr class="separator:a4e59a63ccb1a30fb87972b4d06c98422"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab23ba762139c4a8972bdeaf05ef2c503"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab23ba762139c4a8972bdeaf05ef2c503"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#ab23ba762139c4a8972bdeaf05ef2c503">~ArMapId</a> ()</td></tr>
<tr class="memdesc:ab23ba762139c4a8972bdeaf05ef2c503"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:ab23ba762139c4a8972bdeaf05ef2c503"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ae7de2a138d5fdf92acea8af6912e9797"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#ae7de2a138d5fdf92acea8af6912e9797">create</a> (const char *fileName, <a class="el" href="classArMapId.html">ArMapId</a> *mapIdOut)</td></tr>
<tr class="memdesc:ae7de2a138d5fdf92acea8af6912e9797"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a local file name, creates the map ID.  <a href="#ae7de2a138d5fdf92acea8af6912e9797">More...</a><br /></td></tr>
<tr class="separator:ae7de2a138d5fdf92acea8af6912e9797"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1de5dd4440815386c41973e4f7e3a5f6"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a1de5dd4440815386c41973e4f7e3a5f6">fromPacket</a> (<a class="el" href="classArBasePacket.html">ArBasePacket</a> *packetIn, <a class="el" href="classArMapId.html">ArMapId</a> *mapIdOut)</td></tr>
<tr class="memdesc:a1de5dd4440815386c41973e4f7e3a5f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extracts a map ID from the given network packet.  <a href="#a1de5dd4440815386c41973e4f7e3a5f6">More...</a><br /></td></tr>
<tr class="separator:a1de5dd4440815386c41973e4f7e3a5f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adab69a6432e77d20a3594708ae234056"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#adab69a6432e77d20a3594708ae234056">toPacket</a> (const <a class="el" href="classArMapId.html">ArMapId</a> &amp;mapId, <a class="el" href="classArBasePacket.html">ArBasePacket</a> *packetOut)</td></tr>
<tr class="memdesc:adab69a6432e77d20a3594708ae234056"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts the given map ID into a network packet.  <a href="#adab69a6432e77d20a3594708ae234056">More...</a><br /></td></tr>
<tr class="separator:adab69a6432e77d20a3594708ae234056"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a4e70cd587004497f0b3026feb1c8ea47"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e70cd587004497f0b3026feb1c8ea47"></a>
unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a4e70cd587004497f0b3026feb1c8ea47">myChecksum</a></td></tr>
<tr class="memdesc:a4e70cd587004497f0b3026feb1c8ea47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer that contains the checksum of the map file. <br /></td></tr>
<tr class="separator:a4e70cd587004497f0b3026feb1c8ea47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae426b5d7689fef93d3f1bd6dd75771e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae426b5d7689fef93d3f1bd6dd75771e0"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#ae426b5d7689fef93d3f1bd6dd75771e0">myChecksumLength</a></td></tr>
<tr class="memdesc:ae426b5d7689fef93d3f1bd6dd75771e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Length of the buffer that contains the checksum of the map file. <br /></td></tr>
<tr class="separator:ae426b5d7689fef93d3f1bd6dd75771e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06410a856f4b9f27996e8ba79ec5aad6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06410a856f4b9f27996e8ba79ec5aad6"></a>
char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a06410a856f4b9f27996e8ba79ec5aad6">myDisplayChecksum</a></td></tr>
<tr class="memdesc:a06410a856f4b9f27996e8ba79ec5aad6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer that contains the checksum in human readable format. <br /></td></tr>
<tr class="separator:a06410a856f4b9f27996e8ba79ec5aad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8acb493bd7b96a6996bd8a5761282c3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8acb493bd7b96a6996bd8a5761282c3"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#aa8acb493bd7b96a6996bd8a5761282c3">myDisplayChecksumLength</a></td></tr>
<tr class="memdesc:aa8acb493bd7b96a6996bd8a5761282c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Length of the displayable checksum buffer. <br /></td></tr>
<tr class="separator:aa8acb493bd7b96a6996bd8a5761282c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a484e726893eaeecb8254b0bc85f7b957"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a484e726893eaeecb8254b0bc85f7b957"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a484e726893eaeecb8254b0bc85f7b957">myFileName</a></td></tr>
<tr class="memdesc:a484e726893eaeecb8254b0bc85f7b957"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name of the map file. <br /></td></tr>
<tr class="separator:a484e726893eaeecb8254b0bc85f7b957"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb1c0da6f70d65634dc2f16fc5cc937d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb1c0da6f70d65634dc2f16fc5cc937d"></a>
long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#acb1c0da6f70d65634dc2f16fc5cc937d">mySize</a></td></tr>
<tr class="memdesc:acb1c0da6f70d65634dc2f16fc5cc937d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of bytes in the map file. <br /></td></tr>
<tr class="separator:acb1c0da6f70d65634dc2f16fc5cc937d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e39960ec9528154fb2fdbc23eb48af2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e39960ec9528154fb2fdbc23eb48af2"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a3e39960ec9528154fb2fdbc23eb48af2">mySourceName</a></td></tr>
<tr class="memdesc:a3e39960ec9528154fb2fdbc23eb48af2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name of the source robot or server from which the map file originated. <br /></td></tr>
<tr class="separator:a3e39960ec9528154fb2fdbc23eb48af2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f8656deeae851ea62e48b20e3a7fb8d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f8656deeae851ea62e48b20e3a7fb8d"></a>
time_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a0f8656deeae851ea62e48b20e3a7fb8d">myTimestamp</a></td></tr>
<tr class="memdesc:a0f8656deeae851ea62e48b20e3a7fb8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Last modified time of the map file. <br /></td></tr>
<tr class="separator:a0f8656deeae851ea62e48b20e3a7fb8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:aa89a23c5dab9abfe50f29accfc50c54a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#aa89a23c5dab9abfe50f29accfc50c54a">operator!=</a> (const <a class="el" href="classArMapId.html">ArMapId</a> &amp;id1, const <a class="el" href="classArMapId.html">ArMapId</a> &amp;id2)</td></tr>
<tr class="memdesc:aa89a23c5dab9abfe50f29accfc50c54a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the two map IDs are not equal.  <a href="#aa89a23c5dab9abfe50f29accfc50c54a">More...</a><br /></td></tr>
<tr class="separator:aa89a23c5dab9abfe50f29accfc50c54a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f273108823f7f0c0f83aee0e949ec3a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMapId.html#a8f273108823f7f0c0f83aee0e949ec3a">operator==</a> (const <a class="el" href="classArMapId.html">ArMapId</a> &amp;id1, const <a class="el" href="classArMapId.html">ArMapId</a> &amp;id2)</td></tr>
<tr class="memdesc:a8f273108823f7f0c0f83aee0e949ec3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the two map IDs are equivalent.  <a href="#a8f273108823f7f0c0f83aee0e949ec3a">More...</a><br /></td></tr>
<tr class="separator:a8f273108823f7f0c0f83aee0e949ec3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Enapsulates the data used to uniquely identify an <a class="el" href="classAria.html" title="Contains global initialization, deinitialization and other global functions. ">Aria</a> map. </p>
<p><a class="el" href="classArMapId.html" title="Enapsulates the data used to uniquely identify an Aria map. ">ArMapId</a> is a small helper class that contains all of the information needed to uniquely identify an <a class="el" href="classAria.html" title="Contains global initialization, deinitialization and other global functions. ">Aria</a> map. In addition to the standard file attributes (such as filename, size, and timestamps), it contains the name of the originating source robot or server. It also contains the checksum of the file contents. This checksum is currently calculated by the <a class="el" href="classArMD5Calculator.html" title="Calculates the MD5 checksum when reading or writing a text file using ArFunctors. ...">ArMD5Calculator</a> class. All of the data should allow one to determine whether two map files are the same with a reasonable degree of certainty. </p>
<p>The <a class="el" href="classArMapId.html" title="Enapsulates the data used to uniquely identify an Aria map. ">ArMapId</a> class is not thread-safe.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classArMD5Calculator.html" title="Calculates the MD5 checksum when reading or writing a text file using ArFunctors. ...">ArMD5Calculator</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a5568f0f32615040f75fd7092718dd4fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ArMapId::ArMapId </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>sourceName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fileName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>checksum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>checksumLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long int&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const time_t&#160;</td>
          <td class="paramname"><em>timestamp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates a map ID with the given attributes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sourceName</td><td>the const char * name of the robot or server from which the map originated </td></tr>
    <tr><td class="paramname">fileName</td><td>the const char * name of the map file </td></tr>
    <tr><td class="paramname">checksum</td><td>the unsigned char * buffer that contains the file checksum </td></tr>
    <tr><td class="paramname">checksumLength</td><td>the size_t length of the checksum buffer </td></tr>
    <tr><td class="paramname">size</td><td>the long int number of bytes in the map file </td></tr>
    <tr><td class="paramname">timestamp</td><td>the time_t last modified time of the map file </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classArMD5Calculator.html" title="Calculates the MD5 checksum when reading or writing a text file using ArFunctors. ...">ArMD5Calculator</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ae7de2a138d5fdf92acea8af6912e9797"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMapId::create </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fileName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArMapId.html">ArMapId</a> *&#160;</td>
          <td class="paramname"><em>mapIdOut</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Given a local file name, creates the map ID. </p>
<p>This method calculates the checksum of the specified file </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fileName</td><td>the const char * name of the file for which to create the map ID </td></tr>
    <tr><td class="paramname">mapIdOut</td><td>a pointer to the map ID to be filled in with the results </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool true if the file was found and the map ID created; false, otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="a1de5dd4440815386c41973e4f7e3a5f6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMapId::fromPacket </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArBasePacket.html">ArBasePacket</a> *&#160;</td>
          <td class="paramname"><em>packetIn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArMapId.html">ArMapId</a> *&#160;</td>
          <td class="paramname"><em>mapIdOut</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Extracts a map ID from the given network packet. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">packetIn</td><td>the <a class="el" href="classArBasePacket.html" title="Base packet class. ">ArBasePacket</a> from which to read the map ID </td></tr>
    <tr><td class="paramname">mapIdOut</td><td>a pointer to the <a class="el" href="classArMapId.html" title="Enapsulates the data used to uniquely identify an Aria map. ">ArMapId</a> to be filled in with the results </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool true if the map ID was successfully read from the given packet, false otherwise. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classArMapId.html#adab69a6432e77d20a3594708ae234056" title="Inserts the given map ID into a network packet. ">toPacket</a> for a description of the packet format </dd></dl>

</div>
</div>
<a class="anchor" id="a410aef2069cbe512f2482349f64240a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * ArMapId::getFileName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the string name of the file. </p>
<p>TODO: Does this include path name?? </p>

</div>
</div>
<a class="anchor" id="adab69a6432e77d20a3594708ae234056"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMapId::toPacket </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classArMapId.html">ArMapId</a> &amp;&#160;</td>
          <td class="paramname"><em>mapId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArBasePacket.html">ArBasePacket</a> *&#160;</td>
          <td class="paramname"><em>packetOut</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Inserts the given map ID into a network packet. </p>
<p>The format of the map ID in the network packet is as follows: </p><pre>
  string:  source robot or server name
  string:  map file name
  uByte4:  number of bytes in the checksum
  data  :  checksum, included only if the number of bytes in the checksum 
           is greater than 0
  uByte4:  file size
  byte4 :  file last modified time
</pre> <dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mapId</td><td>the <a class="el" href="classArMapId.html" title="Enapsulates the data used to uniquely identify an Aria map. ">ArMapId</a> to be inserted into the packet </td></tr>
    <tr><td class="paramname">packetOut</td><td>the <a class="el" href="classArBasePacket.html" title="Base packet class. ">ArBasePacket</a> * to be modified </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="aa89a23c5dab9abfe50f29accfc50c54a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classArMapId.html">ArMapId</a> &amp;&#160;</td>
          <td class="paramname"><em>id1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classArMapId.html">ArMapId</a> &amp;&#160;</td>
          <td class="paramname"><em>id2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns whether the two map IDs are not equal. </p>
<p>Note that if either map ID specifies a NULL timestamp, then the timestamp will not be used for comparison purposes. </p>

</div>
</div>
<a class="anchor" id="a8f273108823f7f0c0f83aee0e949ec3a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classArMapId.html">ArMapId</a> &amp;&#160;</td>
          <td class="paramname"><em>id1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classArMapId.html">ArMapId</a> &amp;&#160;</td>
          <td class="paramname"><em>id2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns whether the two map IDs are equivalent. </p>
<p>Note that if either map ID specifies a NULL timestamp, then the timestamp will not be used for comparison purposes. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>ArMapUtils.h</li>
<li>ArMapUtils.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArMapId.html">ArMapId</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
